package cn.stard.basic.listener;

import cn.stard.basic.service.IPermissionScanService;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.factory.annotation.Autowired;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;

/*设置一个监听器注解*/
@WebListener
//  给我们一个可以打印log4j日志的注解
@Slf4j
public class PermissionScanInitListener implements ServletContextListener {

    @Autowired
    private IPermissionScanService permissionScanService;

        // 监听开始容器初始化会执行该方法
    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        // 为了防止程序启动太慢我们单独开启一个线程来实现这个操作,当然可以不加这个线程
        new Thread(()->{
            log.info("监听注解permissionScan开始前 start...");
            permissionScanService.scan();
        }).start();
    }




    // 程序停止时被调用
    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        // 主动打印日志
        log.info("监听结束PermissionScanInitInstener stop..");
    }
}
